/* 
 * GrupoEvento.java
 * 
 * Data de criação: 07/09/2010
 * 
 * O2SOLUTIONS - SOLUÇÕES EM TECNOLOGIA DA INFORMAÇÃO. 
 *
 */
package br.com.o2solutions.siso.integration.entidade;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import br.com.o2solutions.core.integration.repository.entity.BaseEntity;

/**
 * Classe responsável por representar o Grupo o qual os {@link Evento}s estão
 * associados.
 * 
 * @author Osvaldeir
 * @since 07/09/2010
 * 
 */
@Entity
@Table(name="TBGRUPOEVENTO")
@SequenceGenerator(name="SQGRUPOEVENTO", sequenceName="SQGRUPOEVENTO")
public class GrupoEvento extends BaseEntity<Integer> {

	private static final long serialVersionUID = 1L;
	
	private GrupoEvento grupo;
	
	private String descricao;
	
	@Id
	@Override
	@Column(name="ID")
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SQGRUPOEVENTO")
	public Integer getId() {
		return super.getId();
	}

	/**
	 * Retorna o(a) grupo.
	 * 
	 * @return GrupoEvento
	 */
	@ManyToOne
	@JoinColumn(name="SUPERGRUPOEVENTOID", nullable=true)
	public GrupoEvento getGrupo() {
		return grupo;
	}

	/**
	 * Atribui o(a) grupo.
	 *
	 * @param grupo GrupoEvento
	 */
	public void setGrupo(GrupoEvento grupo) {
		this.grupo = grupo;
	}

	/**
	 * Retorna o(a) descricao.
	 * 
	 * @return String
	 */
	@Column(name="DESCRICAO", length=50, unique=true, nullable=false)
	public String getDescricao() {
		return descricao;
	}

	/**
	 * Atribui o(a) descricao.
	 *
	 * @param descricao String
	 */
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

}
